home *** CD-ROM | disk | FTP | other *** search
Wrap
AMOS Source Code | 1997-08-18 | 2.0 KB | 60 lines
Rem MapMaster V1.0 Example code. Rem This Example shows you how easy it is to use the included procedures. Rem It allows you to move through a map with the joystick. Rem Push mouse key to quit. Rem /*--- Set up variables ---*/ Dim BLOCKS(240) Global BLOCKS() X=0 Y=0 Rem /* Open required Screen */ Screen Open 1,320,200,32,Lowres : Flash Off : Curs Off Rem /*--- Call the routines with correct parameters ---*/ _LOADMAP["map1",20,12] _GETBLOCKS["dungeonblocks.iff",16,16,1] _PASTEBLOCKS[16,16,20,12,X,Y] Rem /*--- Handle the movement ---*/ Repeat If Jleft(1) Then X=X-1 : _PASTEBLOCKS[16,16,20,12,X,Y] If Jright(1) Then X=X+1 : _PASTEBLOCKS[16,16,20,12,X,Y] If Jup(1) Then Y=Y-1 : _PASTEBLOCKS[16,16,20,12,X,Y] If Jdown(1) Then Y=Y+1 : _PASTEBLOCKS[16,16,20,12,X,Y] Multi Wait Until Mouse Key=1 End Procedure _LOADMAP[_MAP$,_HORIZBLOCKS,_VERTBLOCKS] Open In 1,_MAP$ NUM=1 Repeat Input #1,BLOCKS(NUM) NUM=NUM+1 Until NUM=_HORIZBLOCKS*_VERTBLOCKS+1 Close 1 End Proc Procedure _GETBLOCKS[_BLOCKSFILE$,_BLOCKWIDTH,_BLOCKHEIGHT,_BLOCKGAP] NUM=1 : X=_BLOCKGAP : Y=_BLOCKGAP : _TOTALWIDTH=Screen Width/(_BLOCKWIDTH+_BLOCKGAP) : WIDTH2=_TOTALWIDTH Load Iff _BLOCKSFILE$ Repeat If NUM=WIDTH2 and X+_BLOCKWIDTH>Screen Width Then X=_BLOCKGAP : Y=Y+_BLOCKHEIGHT+_BLOCKGAP : WIDTH2=WIDTH2+_TOTALWIDTH If NUM<WIDTH2 Then Get Block NUM,X,Y,_BLOCKWIDTH,_BLOCKHEIGHT,1 : X=X+_BLOCKWIDTH+_BLOCKGAP Else Get Block NUM,X,Y,_BLOCKWIDTH,_BLOCKHEIGHT,1 : X=_BLOCKGAP : Y=Y+_BLOCKHEIGHT+_BLOCKGAP : WIDTH2=WIDTH2+_TOTALWIDTH If Y+_BLOCKHEIGHT>=Screen Height Then Y=Screen Height NUM=NUM+1 Until Y>=Screen Height End Proc Procedure _PASTEBLOCKS[_BLOCKWIDTH,_BLOCKHEIGHT,_HORIZBLOCKS,_VERTBLOCKS,XSET,YSET] Rem /*--- Set Variables to suitable Values ---*/ NUM=1 : X=XSET*_BLOCKWIDTH : Y=0+YSET*_BLOCKHEIGHT : NUM2=2 Cls 0 Repeat Put Block BLOCKS(NUM),X,Y X=X+_BLOCKWIDTH If NUM=_HORIZBLOCKS Then Y=Y+_BLOCKHEIGHT : X=XSET*_BLOCKWIDTH If NUM=_HORIZBLOCKS*NUM2 Then Y=Y+_BLOCKHEIGHT : X=XSET*_BLOCKWIDTH : NUM2=NUM2+1 NUM=NUM+1 Until NUM=_HORIZBLOCKS*_VERTBLOCKS+1 End Proc